//
// Created by 78472 on 2022/5/16.
//

#ifndef CONFIG_CONFIG_PARAM_UTIL_H
#define CONFIG_CONFIG_PARAM_UTIL_H

#include "qlibc/QData.h"
#include <string>
#include <mutex>

using namespace std;
using namespace qlibc;

class configParamUtil {
private:
    string dataDirPath;                 //文件配置路径
    QData panelInfoData;                //面板配置信息
    QData hongmeiUnbindData;            //网关删除消息
    QData hongmeiDestroyNetworkData;    //销毁网络消息
    std::recursive_mutex mutex_;

    static configParamUtil *instance;
    explicit configParamUtil() = default;
public:
    static configParamUtil *getInstance();

    //获取文件配置路径
    string getconfigPath();

    //设置文件配置路径
    void setConfigPath(const string &configPath);

    //获取面板信息
    qlibc::QData getPanelInfo();

    //设置面板信息
    void setPanelInfo(qlibc::QData& data);

    //更改面板配置属性
    qlibc::QData changePanelProperty(const qlibc::QData& panelData, bool& isPanelRemoved, bool& isPanelInfoChanged);

    //保存虹美网关解绑消息
    void saveHongmeiUnbindData(qlibc::QData& data);

    //保存虹美网络销毁消息
    void saveHongmeiDestroyNetworkData(qlibc::QData& data);
};

#endif //CONFIG_CONFIG_PARAM_UTIL_H
